TCP (Transmission Control Protocol) হলো একটি কানেকশন-অরিয়েন্টেড প্রোটোকল, যা ইন্টারনেট বা অন্য কোনো নেটওয়ার্কে নির্ভরযোগ্য এবং অর্ডার মেইনটেনিং ডেটা ট্রান্সফার নিশ্চিত করে। এটি ইন্টারনেট প্রোটোকল স্যুটের অন্যতম প্রধান প্রোটোকল এবং TCP/IP স্ট্যাকের Transport Layer-এ কাজ করে। TCP মূলত ক্লায়েন্ট এবং সার্ভারের মধ্যে নির্ভরযোগ্য যোগাযোগ স্থাপন করে এবং ডেটা প্যাকেটগুলোকে সঠিক ক্রমানুসারে পৌঁছে দেয়।
TCP এর মৌলিক বৈশিষ্ট্যসমূহ
TCP-এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিচে উল্লেখ করা হলো:
Connection-Oriented Protocol:
TCP একটি কানেকশন-অরিয়েন্টেড প্রোটোকল, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি স্থায়ী সংযোগ স্থাপন করে। এটি একটি Three-Way Handshake প্রক্রিয়ার মাধ্যমে সংযোগ স্থাপন করে এবং নিশ্চিত করে যে ডেটা আদান-প্রদান করার আগে উভয় পক্ষের মধ্যে একটি স্থিতিশীল যোগাযোগ ব্যবস্থা রয়েছে।
Reliable Data Transfer:
TCP ডেটা ট্রান্সফারকে নির্ভরযোগ্য করে তোলে। এটি ডেটা প্যাকেটের গন্তব্যে পৌঁছানোর নিশ্চয়তা দেয়। যদি কোনো প্যাকেট হারিয়ে যায় বা ক্ষতিগ্রস্ত হয়, তাহলে TCP সেই প্যাকেট পুনরায় পাঠানোর ব্যবস্থা করে।
Ordered Delivery:
TCP ডেটা প্যাকেটগুলিকে নির্দিষ্ট ক্রমানুসারে গন্তব্যে পৌঁছানোর নিশ্চয়তা দেয়। ডেটা প্যাকেটগুলো বিভক্ত হয়ে গেলেও TCP সেগুলো পুনরায় সঠিক ক্রমানুসারে সাজিয়ে দেয়।
Error Detection and Recovery:
TCP ডেটা প্যাকেটের প্রতিটি সেগমেন্টে চেকসাম ব্যবহার করে ত্রুটি শনাক্ত করে। যদি কোনো ত্রুটি পাওয়া যায়, তাহলে সেই প্যাকেটটি পুনরায় পাঠানো হয়। এটি ডেটা ট্রান্সফারকে নির্ভরযোগ্য করে তোলে।
Flow Control:
TCP ফ্লো কন্ট্রোল মেকানিজম ব্যবহার করে নিশ্চিত করে যে প্রেরকের গতি রিসিভারের গতি অতিক্রম না করে। এটি নিশ্চিত করে যে রিসিভার তার ক্যাপাসিটি অনুযায়ী ডেটা গ্রহণ করতে সক্ষম।
Congestion Control:
TCP নেটওয়ার্কের অবস্থা পর্যবেক্ষণ করে এবং নেটওয়ার্কে যদি বেশি কনজেশন থাকে তবে তার গতি কমিয়ে দেয়। এটি নেটওয়ার্কের কার্যক্ষমতা এবং স্থিতিশীলতা বজায় রাখে।
TCP কিভাবে কাজ করে?
TCP-এর কাজের পদ্ধতিটি প্রধানত তিনটি ধাপে বিভক্ত: সংযোগ স্থাপন (Connection Establishment), ডেটা ট্রান্সফার (Data Transfer), এবং সংযোগ বন্ধ করা (Connection Termination)।
১. Connection Establishment (Three-Way Handshake)
TCP সংযোগ স্থাপন করার সময় একটি Three-Way Handshake প্রক্রিয়া অনুসরণ করে। এতে তিনটি ধাপ থাকে:
SYN: ক্লায়েন্ট প্রথমে সার্ভারের কাছে একটি SYN (synchronize) প্যাকেট পাঠায়, যা সংযোগ স্থাপনের অনুরোধ করে।
SYN-ACK: সার্ভার সেই SYN প্যাকেট গ্রহণ করে এবং ক্লায়েন্টের কাছে একটি SYN-ACK প্যাকেট পাঠায়, যা সার্ভার থেকে সংযোগ স্থাপনের সম্মতি নির্দেশ করে।
ACK: ক্লায়েন্ট এই SYN-ACK প্যাকেট গ্রহণ করে এবং সার্ভারের কাছে একটি ACK (acknowledgment) প্যাকেট পাঠায়, যা সংযোগ স্থাপন সম্পন্ন করে।
এই প্রক্রিয়া সম্পন্ন হলে, ক্লায়েন্ট এবং সার্ভারের মধ্যে একটি স্থায়ী সংযোগ তৈরি হয় এবং তারা ডেটা ট্রান্সফারের জন্য প্রস্তুত থাকে।
২. Data Transfer
TCP ডেটা প্যাকেটগুলোকে ছোট ছোট সেগমেন্টে ভাগ করে এবং সেগুলোকে সঠিক ক্রমানুসারে ট্রান্সমিট করে। প্রতিটি সেগমেন্টে একটি চেকসাম এবং সিকোয়েন্স নম্বর থাকে, যা ত্রুটি শনাক্তকরণ এবং সঠিক ক্রম নিশ্চিত করে।
Acknowledgment: প্রতিটি সেগমেন্ট সঠিকভাবে পৌঁছালে রিসিভার একটি ACK প্যাকেট পাঠায়, যা প্রেরককে জানায় যে সেগমেন্টটি সঠিকভাবে গ্রহণ করা হয়েছে।
Retransmission: যদি কোনো সেগমেন্ট হারিয়ে যায় বা ত্রুটিযুক্ত হয়, TCP সেই সেগমেন্টটি পুনরায় পাঠায়।
৩. Connection Termination
TCP সংযোগ বন্ধ করতে Four-Way Handshake পদ্ধতি অনুসরণ করে:
ক্লায়েন্ট একটি FIN (finish) প্যাকেট পাঠায়, যা সার্ভারকে জানায় যে সে সংযোগ বন্ধ করতে চায়।
সার্ভার ACK প্যাকেট পাঠিয়ে সেই FIN প্যাকেটের গ্রহণ নিশ্চিত করে।
এরপর, সার্ভারও একটি FIN প্যাকেট পাঠায়, যা জানায় যে সে সংযোগ বন্ধ করতে প্রস্তুত।
ক্লায়েন্ট একটি শেষ ACK প্যাকেট পাঠিয়ে সংযোগ সম্পূর্ণরূপে বন্ধ করে।
TCP এর ব্যবহার
TCP বিভিন্ন নেটওয়ার্ক ভিত্তিক অ্যাপ্লিকেশন এবং পরিষেবায় ব্যবহৃত হয়, যেমন:
HTTP/HTTPS: ওয়েব ব্রাউজার এবং ওয়েব সার্ভারের মধ্যে ডেটা ট্রান্সফারের জন্য TCP ব্যবহার করা হয়।
FTP (File Transfer Protocol): ফাইল ট্রান্সফার করার সময় TCP ব্যবহার করে নির্ভরযোগ্য এবং নিরাপদ যোগাযোগ নিশ্চিত করা হয়।
SMTP (Simple Mail Transfer Protocol): ইমেইল পরিষেবার ক্ষেত্রে TCP ব্যবহার করা হয়।
SSH (Secure Shell): নিরাপদভাবে দূরবর্তী সার্ভারে সংযোগ স্থাপন করতে TCP ব্যবহার করা হয়।
TCP এবং UDP এর তুলনা
TCP এবং UDP (User Datagram Protocol) উভয়ই Transport Layer প্রোটোকল, তবে এদের মধ্যে কয়েকটি গুরুত্বপূর্ণ পার্থক্য রয়েছে: